package com.ranyk.www.constant;


import com.ranyk.www.constant.base.ReturnCode;

/**
 * CLASS_NAME: CommonReturnCode.java <br/>
 *
 * @author ranyk           <br/>
 * @version V1.0           <br/>
 * @decription: 返回 Code 枚举对象  <br/>
 * @date: 2022-04-01 <br/>
 */
public enum CommonReturnCode implements ReturnCode {

    /**
     * 请求失败
     */
    FAILED(0, "failed"),
    /**
     * 请求成功
     */
    SUCCESS(1, "success"),
    /**
     * 未知错误
     */
    UNKNOWN_ERROR(-1, "未知错误,请联系管理员!"),
    /**
     * 200请求成功
     */
    OK(200, "请求成功"),
    /**
     * 207频繁操作
     */
    MULTI_STATUS(207, "频繁操作"),
    /**
     * 303登录失败
     */
    LOGIN_FAIL(303, "登录失败 "),
    /**
     * 400请求参数出错
     */
    BAD_REQUEST(400, "请求参数出错"),
    /**
     * 401没有登录
     */
    UNAUTHORIZED(401, "您未登录或者登录已超时,请先登录!"),
    /**
     * 403没有权限
     */
    FORBIDDEN(403, "没有权限"),
    /**
     * 404找不到页面
     */
    NOT_FOUND(404, "找不到页面"),
    /**
     * 408请求超时
     */
    REQUEST_TIMEOUT(408, "请求超时"),
    /**
     * 409发生冲突
     */
    CONFLICT(409, "发生冲突"),
    /**
     * 410已被删除
     */
    GONE(410, "已被删除"),
    /**
     * 423已被锁定
     */
    LOCKED(423, "已被锁定"),
    /**
     * 500服务器出错
     */
    INTERNAL_SERVER_ERROR(500, "服务器出错");

    /**
     * 返回状态码
     */
    private final Integer code;
    /**
     * 返回消息
     */
    private final String message;

    /**
     * 全参构造函数
     *
     * @param code    返回状态码
     * @param message 返回信息
     */
    CommonReturnCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 获取 code 值
     *
     * @return 返回 Integer 值
     */
    @Override
    public Integer getCode() {
        return this.code;
    }

    /**
     * 获取 Message 值
     *
     * @return 返回 String 值
     */
    @Override
    public String getMessage() {
        return this.message;
    }
}
